

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.*;

/* TAREA 2 - Clase excepci?n */

public class VentanaExamen extends JFrame implements ActionListener
{
	JPanel panelSuperior;
	JPanel panelInferior;
	JPanel panelCentral;
	JPanel panelBotoneraCentral;
	JPanel panelListas;
	JPanel panelEtiquetas;
	JScrollPane scrollListaCiudades;
	JScrollPane scrollListaSeleccionadas;	
	JList listaCiudades;
	JList listaSeleccionadas;
	JButton botonPoner;
	JButton botonQuitar;
	JButton botonValidarSeleccion;
	JButton botonOrdenar;
	JButton botonSalir;
	JTextField poblacionMaxima;

	public VentanaExamen()
	{
		setDefaultCloseOperation( JFrame.DISPOSE_ON_CLOSE );
		setTitle("10 Ciudades m?s grandes de Espa?a");		
		
		panelSuperior = new JPanel();
		panelInferior = new JPanel();
		panelCentral = new JPanel();
		panelBotoneraCentral = new JPanel();
		panelListas = new JPanel();
		panelEtiquetas = new JPanel();

		panelEtiquetas.setLayout(new BorderLayout());
		panelEtiquetas.add(new JLabel("Ciudades"),"West");
		panelEtiquetas.add(new JLabel("Seleccionadas"),"East");
				
		panelListas.setLayout(new GridLayout(1,3));				
		
		cargarCiudades();	
		scrollListaCiudades = new JScrollPane(listaCiudades);
		scrollListaSeleccionadas = new JScrollPane(listaSeleccionadas);
		panelListas.add(scrollListaCiudades);
		panelListas.add(panelBotoneraCentral);
		panelListas.add(scrollListaSeleccionadas);
		
		panelBotoneraCentral.setLayout(new BorderLayout());
		botonPoner = new JButton (">");
		botonQuitar = new JButton ("<");		
		panelBotoneraCentral.add(botonPoner,"North");
		panelBotoneraCentral.add(botonQuitar,"South");
		
		panelCentral.setLayout(new BorderLayout());
		panelCentral.add(panelEtiquetas,"North");
		panelCentral.add(panelListas,"Center");
				
		botonValidarSeleccion = new JButton("Validar selecci?n");
		botonOrdenar = new JButton("Ordenar selecci?n");
		botonSalir = new JButton("Salir");

		this.getContentPane().setLayout(new BorderLayout());
		this.getContentPane().add(panelSuperior,"North");
		this.getContentPane().add(panelCentral,"Center");
		this.getContentPane().add(panelInferior,"South");

		poblacionMaxima = new JTextField( "1000000", 7 );
		poblacionMaxima.setHorizontalAlignment( JTextField.CENTER );
		panelSuperior.setLayout( new BorderLayout() );
		panelSuperior.add(new JLabel("SELECCIONA LAS CIUDADES QUE DESEES PARA MARKETING LIMITADO"), "North" );
			JPanel panelSuperior2 = new JPanel();
			panelSuperior2.add( new JLabel( "Poblaci?n m?xima a alcanzar: " ));
			panelSuperior2.add( poblacionMaxima );
		panelSuperior.add( panelSuperior2, "South" );
			
		panelInferior.add(botonValidarSeleccion);
		panelInferior.add(botonOrdenar);
		panelInferior.add(botonSalir);
			
		this.setSize(600,320);
		this.setResizable(false);
		this.setVisible(true);

		botonValidarSeleccion.addActionListener(this);
		botonOrdenar.addActionListener(this);
		botonSalir.addActionListener(this);
		botonPoner.addActionListener(this);
		botonQuitar.addActionListener(this);
	
	}

	public void cargarCiudades() 
	{
		/* TAREA 1 - parte 1 */
	}

	public void validarSeleccion()
	{
		/* TAREA 2 - validaci?n */
	}

	public void pasaCiudad(JList origen, JList destino)
	{
		/* TAREA 1 - parte 2 */
	}

	public void ordenarSeleccionadas()
	{
		/* TAREA 3 - estructura de datos*/
	}

	public void actionPerformed(ActionEvent e)
	{
		JButton boton = (JButton)e.getSource();
		if (boton == botonPoner) {
			pasaCiudad(listaCiudades,listaSeleccionadas);
		} else if (boton == botonQuitar) {
			pasaCiudad(listaSeleccionadas,listaCiudades);				
		} else if (boton == botonValidarSeleccion) {
			/* TAREA 2 - llamada */
		} else if (boton == botonOrdenar) {
			ordenarSeleccionadas();
		} else if (boton == botonSalir) {
			System.exit(0);
		}
	}
	
	public void sacarDobleMensaje( String mensaje, int poblacionError ) {
		/* TAREA 4 */
	}
	
	public static void main(String[] args)
	{
		new VentanaExamen();
	}

}

class MiThreadResuelto extends Thread {
	private int poblacionError;
	private String mensaje;
	MiThreadResuelto( String mensaje, int poblacionError ) {
		this.mensaje = mensaje;
		this.poblacionError = poblacionError;
	}
	private JFrame vent;
	public void run() {
		vent = new JFrame();
		vent.setTitle( "Error en selecci?n" );
		vent.setDefaultCloseOperation( JFrame.DO_NOTHING_ON_CLOSE );
		vent.setSize( 250, 100 );
		/* TAREA 4 - ventana y funcionamiento del hilo */
	}
}

/* TAREA 3 - modificaciones en la clase Ciudad */
class Ciudad {
	private String nombre;
	private int habitantes;
	public Ciudad( String nombre, int habitantes ) {
		this.nombre = nombre;
		this.habitantes = habitantes;
	}
	public String getNombre() { return nombre; }
	public int getHabitantes() { return habitantes; }
	public String toString() {
		return nombre + " [" + habitantes + "]";
	}
}